const path = require('path')
const fs = require('fs')

const resolve = dir => {
  return path.join(__dirname, dir)
}

const env = process.env.NODE_ENV || 'development'
fs.writeFileSync(path.join(__dirname, './config/env.js'), `export default '${env}'
`)

// 项目部署基础
// 默认情况下，我们假设你的应用将被部署在域的根目录下,
// 例如：https://www.my-app.com/
// 默认：'/'
// 如果您的应用程序部署在子路径中，则需要在这指定子路径
// 例如：https://www.foobar.com/my-app/
// 需要将它改为'/my-app/'
const BASE_URL = process.env.NODE_ENV === 'production'
  ? '/'
  : '/'

module.exports = {

  baseUrl: BASE_URL,
  // tweak internal webpack configuration.
  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src')) // key,value自行定义，比如.set('@@', resolve('src/components'))
      .set('_c', resolve('src/components'))
      .set('_conf', resolve('config'))
  },
  // 打包时不生成.map文件
  productionSourceMap: false,
  devServer: {

    // target：要使用url模块解析的url字符串
    // forward：要使用url模块解析的url字符串
    // agent：要传递给http（s）.request的对象（请参阅Node的https代理和http代理对象）
    // ssl：要传递给https.createServer（）的对象
    // ws：true / false，是否代理websockets
    // xfwd：true / false，添加x-forward标头
    // secure：true / false，是否验证SSL Certs
    // toProxy：true / false，传递绝对URL作为路径（对代理代理很有用）
    // prependPath：true / false，默认值：true - 指定是否要将目标的路径添加到代理路径
    // ignorePath：true / false，默认值：false - 指定是否要忽略传入请求的代理路径（注意：如果需要，您必须附加/手动）。
    // localAddress：要为传出连接绑定的本地接口字符串
    // changeOrigin：true / false，默认值：false - 将主机标头的原点更改为目标URL
    proxy: {
      '/admin': {
        target: 'http://127.0.0.1:8081',
        // pathRewrite: {'^/SoJpt' : ''},
        ws: false,
        changeOrigin: true, // 解决跨域问题,设置为true, 本地就会虚拟一个服务器接收你的请求并代你发送该请求,
        cookiePathRewrite: {
          // "/unchanged.path/": "/unchanged.path/",
          // "/SoJpt": "/",
          // "*": ""
        }
      }
    },
    disableHostCheck: true
  }
}
